package cn.tedu.game;

import javax.swing.*;
import java.awt.*;
import java.util.Timer;
import java.util.TimerTask;

//面板类型(玻璃)
public class MyPanel extends JPanel {
    Star star;//属性
    Star[] stars = new Star[10000];//声明了一个数组，长度为1W
    public MyPanel(){
        //将创建的面板的背景色设置
        this.setBackground(Color.pink);
        star = new Star();//对这个属性进行初始化，就会执行到Star的构造方法
        //写一个循环，执行1W次，每一个创建一个Star对象，放入数组的相应位置.
        for(int i=0;i<stars.length;i++){
            stars[i] = new Star();
        }
    }
    int x=100;
    //重写，覆盖
    public void paint(Graphics g) {
        //调用一下父类中的paint方法
        super.paint(g);
        //g.drawString("nihao",100,100);
        g.setColor(Color.YELLOW);
        g.fillOval(200,100,100,100);

        g.setColor(Color.pink);
        g.fillOval(x,100,100,100);



        //画出刚才创建的那个星星对象
        g.setColor(star.color);
        g.drawString("*",star.x,star.y);
        for (int i = 0; i < stars.length; i++) {
            //每一次循环得到i为下标的星星对象
            Star star = stars[i];
            g.setColor(star.color);
            //创建字体，赋值给画笔对象
            Font font = new Font("宋体",Font.BOLD,5);
            g.setFont(font);

            g.drawString("*",star.x,star.y);
        }
    }
    //自定义一个方法，用于使用定时器来操作1w个星星对象
    public void action(){
        Timer timer = new Timer();
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                x++;
                for (int i = 0; i < stars.length; i++) {
                    stars[i].move();
                }

                repaint();
            }
        },0,20);
    }

}